草庐IT

JavaScript 代码返回 false,但表单仍然被提交

全部标签

ruby-on-rails - 在 Rails 3.2 + SimpleForm 中显示带有嵌套表单错误的字段

我有一个Flight模型嵌套在FlightLog模型中。FlightLog可能包含许多航类。我在Bootstrap安装中使用SimpleForm,这使得在验证失败时用错误类包围带有错误的表单元素成为可能。问题是,即使为嵌套模型触发了验证,simple_fields_for中有错误的字段没有被标记,因此无法确定哪个属性无效。在调用创建操作时检查错误散列后,我可以看到它正确填充了顶层的错误,以及每个资源中嵌套资源的错误。我如何修改simple_form的行为以将错误类添加到每个嵌套模型的控制组以匹配父级的行为?提前致谢。 最佳答案 如果

ruby - 在 VIM 中执行代码类似于 Textmate 中的 Cmd+R 或 Cmd+B Sublime Text2

嘿,有没有办法或插件来执行代码,例如在我的例子中,Ruby直接来self的vim编辑器。我从Textmate了解到这一点,您可以在SublimeText2中使用Cmd+R或Cmd+B执行代码。在SublimeText中,它被称为BuildSystem。谢谢指教! 最佳答案 如果你只想在Ruby中执行当前缓冲区,你可以在正常模式下执行此操作::!ruby%您还可以使用您的领导键将其映射到快捷方式::mapr:!ruby%这会让您执行leader+r来运行文件。 关于ruby-在VIM中执行

ruby-on-rails - 设计自定义登录表单

有什么方法可以将Devise身份验证器指向我的自定义登录表单?标准的、无样式的表单不可用(缺少字段,提交时抛出异常,实际上让我的运行时崩溃了一次。)而且不好看。我有一个100%可用的表单,它实际上可以让人们登录,但如果出现错误,则会显示标准表单,也没有错误消息。类似于“当被要求提供登录表单时,呈现/views/sys/login.html.erb,并在错误时返回到该View并输入错误消息”注意:我已经从另一个问题尝试了以下内容devise_for:users,:path=>'',:path_names=>{:sign_in=>"system/login",:sign_out=>"log

ruby-on-rails - cucumber 测试失败,返回 `stream closed (IOError)`

我们目前正在将我们的Rails应用程序升级到Rails4。在3.2中,我们的Cucumber(1.3.17)测试运行良好(如果可悲地缓慢),使用Capybara(2.4.4)、Poltergeist(1.5.1)和PhantomJS(1.9.8)引擎盖下。但是在4.0.12和4.1.8中,我们在运行中的随机点得到一个streamclosed(IOError):streamclosed(IOError)/var/lib/jenkins/.rvm/gems/ruby-2.1.5@tallama-integration/gems/cucumber-1.3.17/lib/cucumber/fo

ruby - webrat 自动填充表单字段

我正在学习如何使用Cucumber/webrat编写测试。我的测试场景之一设置为测试表单验证(将字段留空)。奇怪的是,我没有使用fill_in填写的字段被设置为该字段的name属性。这只会在我运行Cucumber时发生,而在使用浏览器时不会发生。我使用的步骤很简单:When/^Isubmittheform$/do#Notfillinginthe'Name'fieldherefill_in'Description',:with=>'Thisisadescription'click_button'Save'end运行使用上述步骤的场景后,我可以看到文本字段“Name”设置为“name”而不

ruby-on-rails - 是否仍然可以在 Rails 4 中使用测试单元?

从Rails3.2升级到Rails4后,我的应用程序可以运行,但是我用测试单元编写的测试是一场灾难。据传,Minitest与测试单元“兼容”。但是,如果我尝试使用(现在捆绑的)Minitest,就会有很多差异——从assert*语句名称和参数到(显然)许多其他既大又微妙的东西。如果我改为尝试避免Minitest并尝试将我的测试单元gem保留在我的Gemfile中,rake测试会爆炸,说,undefinedmethod'refute_predicate'forclass'ActiveSupport::TestCase'这是调用的结果require'rails/test_help':(我已

ruby - Sinatra,上传表单中的进度条

我正在开发一个Sinatra应用程序,它包含一个上传表单,并带有一个进度条,指示上传完成了多少。该过程,如ryandahl所述,如下:HTTPuploadprogressbarsareratherobfuscated-theytypicallyinvolveaprocessrunningontheserverkeepingtrackofthesizeofthetempfilethattheHTTPserveriswritingto,thenontheclientsideanAJAXcallismadeeverycouplesecondstotheserverduringtheuploa

ruby - 我可以在 Ruby 中获取 'ensure' 内的返回值吗?

defsome_methodputs'inmethod'return'Iamareturnvalue'ensureputs'willprintattheend'#CanIsomehowgetthereturnvalueofsome_methodhere?end是否有一些(可能是元编程)原则/方法来获取“确保”子句内方法的返回值,该子句是方法定义的一部分(我们都知道无论如何都会执行)? 最佳答案 分配一个变量只是让你的返回值成为一个变量。您可以在ensure语句中使用该变量,但该方法的返回值将是该方法的非异常部分中评估的最后一条语句。

ruby - 为什么是 ActiveRecord::Base.connected?为 false,在调用 establish_connection 之后

我开发了Sinatra应用程序并在那里使用ActiveRecord来处理数据库,但我遇到了一个问题。我为一个模型写了一个测试,它打破了SQLite3::CantOpenException:unabletoopendatabasefile使用以下代码在test_helper.rb中建立与数据库的连接:Dir.chdir('..')doActiveRecord::Base.establish_connection(db_config)end和ActiveRecord::Base.connected?为假。例如,如果我在连接建立后调用User.find(:all),测试将通过并且Active

ruby-on-rails - 如何测试 Rails ERB 模板的代码覆盖率?

我只是为旧版Rails应用程序构建测试套件。simplecovgem非常适合查找需要测试覆盖的应用程序的暗角(或者可能完全未使用但可以删除的暗角)。我通过在test/test_helper.rb的顶部包含以下内容来调用simplecov:require'simplecov'SimpleCov.start('rails')问题是这不会检查模板中嵌入的所有代码。那里有各种各样的垃圾,我敢肯定其中很多都可以删除,但如果代码覆盖工具可以将我指向未使用的位,那就太好了。对Ruby1.9的Coverage库进行的一些实验让我相信,只有将模板以某种方式预编译为Ruby代码,保存在Ruby源文件中,然